1. Technical Field
The invention relates to the technical field of efficiently handling hierarchical application data. More particularly, the invention relates to an object-oriented programming technique that provides efficient approaches for dealing with hierarchical application data without resorting to multiple inheritance or partial interface implementation.
2. Background Information
Hierarchical application data need to be processed in a variety of different contexts. As an example the generation of transportation models for computer-implemented processing tasks such as transportation route optimization can be mentioned.
Transportation models help to solve problems relating to the transportation of tangible and intangible objects. Tangible objects such as fluids have to be transported via pipeline systems. Goods such as construction material require transportation between remote geographical places across a network of ground, air and sea ways. Intangible objects like electrical signals have to be transported for example within the highly complex wiring system in an airplane. Other intangible objects such as information in the form of electronic mail are sent across the World Wide Web via a plurality of intermediary routers.
Transportation routes have to be planned taking into account prevailing transportation constraints (such as network bandwidth, pipeline diameter, availability of transportation means, hubs and links, etc.). Additionally, transportation routes have to be optimized to save resources (e.g., to reduce the number of intermediary components involved in a particular transportation task, to reduce transportation duration, etc.). Both of these constraints add to the complexity of a particular transportation problem.
In order to deal with complex transportation data, a representation of the transportation data in a well-organized hierarchical data structure is desirable. Such a hierarchical data structure usually includes two or more hierarchy levels. On a lower level, for example, locations may be defined by references such as (geographical) coordinates or individual Internet protocol (IP) addresses. On a higher level, zones that include zero, one or more locations may exist. Such zones may stretch over a coordinate range or a set of IP addresses.
Object-oriented programming languages are suitable to implement such hierarchical relationships and associated generic algorithms. However, depending on the particular programming language, several problems may be encountered. If, for example, the programming language does not support multiple inheritance, then application classes cannot simultaneously be derived from both an application base class that provides basic application functionalities and a hierarchy base class that provides hierarchical functionalities. If the application base class already exists, its replacement is often not only unwanted, but also technically impossible. In programming languages, which do not allow partial implementation of interfaces, the implementation of an interface, which declares hierarchical functionality, requires each application class to implement most of the hierarchical functionality identically. This requirement not only puts a high implementation load on the application side, but it also leads to massive code duplication. This factor is critical in view of maintenance.
An objective of the present invention is to increase programming flexibility and to avoid code duplication when hierarchical application data have to be handled. Another objective is to provide an alternative to multiple inheritance or partial implementation of interfaces.